#ifndef _MAIN_H_
#define _MAIN_H_

#include "Stack.h"
#include "Queue.h"
#include "Interface.h"

#include <string>

enum eSTATUS { CHOICE_STRUCTURE,  CHOICE_TYPE, MANIPULATION_MENU, PUSH, POP, PRINT, REMAKE };

class CMain
{
public :
	CMain(void) : m_status(0), m_piInterface(NULL), m_pfInterface(NULL), m_pcInterface(NULL), m_psInterface(NULL){}

	//. Choice stack or queue.
	void Choice_DataStructure();

	//. Choice type.
	void Choice_DataType();
	
	//. Manipul
	void ManipulationMenu();
	
	//. Push data.
	void Push_Data();

	//. Pop data.
	void Pop_Data();

	int &GetStatus(){return m_status;}

private :

	int m_status;
	std::string m_structure;

	CInterface<int>			*m_piInterface;
	CInterface<float>		*m_pfInterface;
	CInterface<char>		*m_pcInterface;
	CInterface<std::string>	*m_psInterface;
};

#endif